package com.cyys.modules.system.model.log;

import com.baomidou.mybatisplus.annotation.TableName;
import com.cyys.common.utils.StringUtil;
import com.cyys.modules.core.model.CoreUserBean;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;

import java.util.Map;

@Data
@TableName("sys_log")
public class Log extends CoreUserBean {
	/**
	 * 执行模块
	 */
	private String module;
	
	/**
	 * 执行方法
	 */
	private String method;
	
	/**
	 * 响应时间
	 */
	private String responseData;
	
	/**
	 * 执行ip
	 */
	private String ip;
	
	/**
	 * 执行时间
	 */
	private String data;
	
	/**
	 * 描述
	 */
	private String desp;
	
    private String requestUri;          //URI   
    private String requestMethod;          //请求方式  
    private String params;          //提交参数  
    private String exception;           //异常
    
    private String type; //日志类型 1，登录日志；2、操作日志；
    private String terminal; //终端类型

	/**
     * 设置请求参数
     * @param paramMap
     */
	@JsonIgnore
    public void setMapToParams(Map<String, String[]> paramMap) {
        if (paramMap == null){
            return;
        }
        StringBuilder params = new StringBuilder();
        for (Map.Entry<String, String[]> param : ((Map<String, String[]>)paramMap).entrySet()){
            params.append(("".equals(params.toString()) ? "" : "&") + param.getKey() + "=");
            String paramValue = (param.getValue() != null && param.getValue().length > 0 ? param.getValue()[0] : "");
            params.append(StringUtil.abbr(StringUtil.endsWithIgnoreCase(param.getKey(), "password") ? "" : paramValue, 100));
        }
        this.params = params.toString();
    }
}
